<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title>05_Function扩展</title>
</head>
<body>
<!--
1. Function.prototype.bind(obj) :
  * 作用: 将函数内的 this 绑定为 obj, 并将函数返回
2. 面试题: 区别 bind() 与 call() 和 apply()?
  * 都能指定函数中的 this
  * call()/apply() 是立即调用函数
  * bind() 是将函数返回
-->
<script type="text/javascript">
  function fun(age) {
    this.name = 'kobe';
    this.age = age;
    console.log('dddddddddddddd');
  }

  var obj = {};

  fun.call(obj, 12); // 直接从第二个参数开始，依次传入
  fun.apply(obj, [12]); // 第二个参数必须是数组，传入放在数组里

  fun.bind(obj, 12)();
  console.log(obj.name, obj.age);
</script>
</body>
</html>
